
//2958.最多K个重复元素的最长子数组
class Solution {
    public:
        int maxSubarrayLength(vector<int>& nums, int k) {
            //控制一段区间，使得该区间内元素出现频率小于等于k
            //返回最长区间长度
            int left=0,n=nums.size();
            unordered_map<int ,int> mm;
            int ret=0;
            for(int right=0;right<n;right++)
            {
                mm[nums[right]]++;//入窗口
                while(mm[nums[right]]>k)   //相同元素超过k个，出窗口
                    mm[nums[left++]]--;
                
                ret=max(ret,right-left+1);
            }
            return ret;
        }
    };